home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1993…ch: Other People's Memory / ADC Developer CD (1993-03) (''Other People's Memory'')_iso / Dev.CD Mar 93.iso / Development Platforms / CSMP Digests / csmp-v1-028.txt < prev    next >
Encoding:
Text File  |  1992-11-18  |  47.3 KB  |  1,214 lines  |  [TEXT/MPS ]

  1. C.S.M.P. Digest             Mon, 23 Mar 92       Volume 1 : Issue 28
  2.  
  3. Today's Topics:
  4.  
  5.     _ProtectMemory anyone ?
  6.     Changing menu items during MenuSelect
  7.     .pit - What program and where can I get it?
  8.     Need help with seriell driver
  9.     Still having trouble with Discipline...
  10.      HELP WITH MODAL DIALOG/WINDOW CONFLIC
  11.     question re 32-bit memory manager
  12.     SpreadSheet interfaces, best way??
  13.  
  14.  
  15. The Comp.Sys.Mac.Programmer Digest is moderated by Michael A. Kelly.
  16.  
  17. These digests are available (by using FTP, account anonymous, your email
  18. address as password) in the pub/mac/csmp-digest directory on ftp.cs.uoregon.
  19. edu (try skinner.cs.uoregon.edu if that doesn't work).  This is also the home
  20. of the comp.sys.mac.programmer Frequently Asked Questions list.
  21.  
  22. These digests are also available via email.  Just send a note saying that you
  23. want to be on the digest mailing list to mkelly@cs.uoregon.edu, and you will
  24. automatically receive each new digest as it is created.
  25.  
  26. The articles in these digests are taken directly from comp.sys.mac.programmer.
  27. They are not edited; all articles included in this digest are in their original
  28. posted form.  The only articles that are -not- included in these digests are
  29. those which didn't receive any replies (except those that give information
  30. rather than ask a question).  All replies to each article are concatenated
  31. onto the original article in the order in which they were received.  Article
  32. threads are not added to the digests until the last article added to the
  33. thread is at least one month old (this is to ensure that the thread is dead
  34. before adding it to the digests).
  35.  
  36. Send administrative mail to mkelly@cs.uoregon.edu.
  37.  
  38. -------------------------------------------------------
  39.  
  40. From: d88-jwa@hemul.nada.kth.se (Jon W{tte)
  41. Subject: _ProtectMemory anyone ?
  42. Date: 24 Jan 92 20:50:48 GMT
  43. Organization: Royal Institute of Technology, Stockholm, Sweden
  44.  
  45.  
  46. No, it's not a bitch about wanting protected memory (which I do)
  47.  
  48. It's about the trap _ProtectMemmory; which recent Apple documentation
  49. mentions by name (it's in the new ROMs) but I can't seem to find the
  50. trap number or calling sequence...
  51.  
  52. Now, if I knew my application is not supposed to write outside its
  53. heap, could I not write-protect all pages != my heap ? (and set them
  54. back at WaitNextEvent, natch !)
  55.  
  56. Only trouble is; I don't know how to go about and use it :-(
  57.  
  58. --
  59. This Signature is distributed under the conditions of the Signature License,
  60. available at a fee from   h+@nada.kth.se  (Jon W{tte)  Reading the Signature
  61. implies that you accept to be bound by the terms in said License. Should you
  62. not agree on any of these terms, you must return the Signature unread to me.
  63.  
  64.  
  65.  
  66. - -------------------------
  67.  
  68. From: keith@Apple.COM (Keith Rollin)
  69. Subject:  _ProtectMemory anyone ?
  70. Date: 28 Jan 92 23:24:09 GMT
  71. Organization: Apple Computer Inc., Cupertino, CA
  72.  
  73. In article <D88-JWA.92Jan24215048@hemul.nada.kth.se> d88-jwa@hemul.nada.kth.se (Jon W{tte) writes:
  74. >
  75. >No, it's not a bitch about wanting protected memory (which I do)
  76. >
  77. >It's about the trap _ProtectMemmory; which recent Apple documentation
  78. >mentions by name (it's in the new ROMs) but I can't seem to find the
  79. >trap number or calling sequence...
  80. >
  81. >Now, if I knew my application is not supposed to write outside its
  82. >heap, could I not write-protect all pages != my heap ? (and set them
  83. >back at WaitNextEvent, natch !)
  84.  
  85. I don't think so. How would you deal with asynchronous tasks (such as
  86. VBL tasks, Time Manager Tasks, Asynch I/O) installed by processes other
  87. than your own? For instance, if my application has a VBL task that
  88. increments a counter, wouldn't it break if you protected my
  89. application's global variable space while you were executing?
  90.  
  91. -- 
  92. - ----------------------------------------------------------------------------
  93. Keith Rollin           ---            <Taligent .signature under construction>
  94. Disclaimer: Pretty soon, I really _won't_ be speaking for Apple...
  95.  
  96.  
  97.  
  98. - -------------------------
  99.  
  100. From: ksand@apple.com (Kent Sandvik)
  101. Subject:  _ProtectMemory anyone ?
  102. Date: 31 Jan 92 23:33:28 GMT
  103. Organization: MacDTS Mongols
  104.  
  105. In article <62226@apple.Apple.COM>, keith@Apple.COM (Keith Rollin) writes:
  106. > I don't think so. How would you deal with asynchronous tasks (such as
  107. > VBL tasks, Time Manager Tasks, Asynch I/O) installed by processes other
  108. > than your own? For instance, if my application has a VBL task that
  109. > increments a counter, wouldn't it break if you protected my
  110. > application's global variable space while you were executing?
  111.  
  112. The Device Manager is already doing some deferring, so VBL tasks
  113. in general are not triggered durning a page handling. This
  114. so the system could guarantee that the memory they touch is
  115. guaranteed to be held. Dunno I know if that would help with
  116. real semaphore handling concerning protection of shared data...
  117.  
  118. Anyway, TN285 talks in detail about these issues.
  119.  
  120. Kent Sandvik
  121. - -----------
  122. Haven't had a .signature since 1990.
  123.  
  124.  
  125.  
  126. - -------------------------
  127.  
  128. From: keith@Apple.COM (Keith Rollin)
  129. Subject:  _ProtectMemory anyone ?
  130. Date: 28 Jan 92 23:24:09 GMT
  131. Organization: Apple Computer Inc., Cupertino, CA
  132.  
  133. In article <D88-JWA.92Jan24215048@hemul.nada.kth.se> d88-jwa@hemul.nada.kth.se (Jon W{tte) writes:
  134. >
  135. >No, it's not a bitch about wanting protected memory (which I do)
  136. >
  137. >It's about the trap _ProtectMemmory; which recent Apple documentation
  138. >mentions by name (it's in the new ROMs) but I can't seem to find the
  139. >trap number or calling sequence...
  140. >
  141. >Now, if I knew my application is not supposed to write outside its
  142. >heap, could I not write-protect all pages != my heap ? (and set them
  143. >back at WaitNextEvent, natch !)
  144.  
  145. I don't think so. How would you deal with asynchronous tasks (such as
  146. VBL tasks, Time Manager Tasks, Asynch I/O) installed by processes other
  147. than your own? For instance, if my application has a VBL task that
  148. increments a counter, wouldn't it break if you protected my
  149. application's global variable space while you were executing?
  150.  
  151. -- 
  152. - ----------------------------------------------------------------------------
  153. Keith Rollin           ---            <Taligent .signature under construction>
  154. Disclaimer: Pretty soon, I really _won't_ be speaking for Apple...
  155.  
  156.  
  157.  
  158. - -------------------------
  159.  
  160. From: ksand@apple.com (Kent Sandvik)
  161. Subject:  _ProtectMemory anyone ?
  162. Date: 31 Jan 92 23:33:28 GMT
  163. Organization: MacDTS Mongols
  164.  
  165. In article <62226@apple.Apple.COM>, keith@Apple.COM (Keith Rollin) writes:
  166. > I don't think so. How would you deal with asynchronous tasks (such as
  167. > VBL tasks, Time Manager Tasks, Asynch I/O) installed by processes other
  168. > than your own? For instance, if my application has a VBL task that
  169. > increments a counter, wouldn't it break if you protected my
  170. > application's global variable space while you were executing?
  171.  
  172. The Device Manager is already doing some deferring, so VBL tasks
  173. in general are not triggered durning a page handling. This
  174. so the system could guarantee that the memory they touch is
  175. guaranteed to be held. Dunno I know if that would help with
  176. real semaphore handling concerning protection of shared data...
  177.  
  178. Anyway, TN285 talks in detail about these issues.
  179.  
  180. Kent Sandvik
  181. - -----------
  182. Haven't had a .signature since 1990.
  183.  
  184.  
  185.  
  186. ---------------------------
  187.  
  188. From: russells@ccu1.aukuni.ac.nz (Russell Street)
  189. Subject: Changing menu items during MenuSelect
  190. Date: 27 Jan 92 19:50:03 GMT
  191. Organization: University of Auckland, New Zealand.
  192.  
  193. How does one change menu items when the user is selecting
  194. a menu. For instance when Option is being held down
  195. change "Save" to "Save All" etc.  Or like Multifinder 6.1b?
  196. did with it's "Set Aside" item.
  197.  
  198. There is a low memory global called MenuHook. If you install
  199. a pointer to a routine there it gets called repeatedly when
  200. the user is choosing menus. 
  201.  
  202. If you change menu items using SetItem inside the MenuHook routine the
  203. item name does not change if the user is looking at the menu.
  204.  
  205. Perhaps one needs to call the MDEF manually to force a redraw?
  206. I tried to do this but with little success. I got stuck figuring
  207. out where the menu lies in global coordinates.
  208.  
  209. Before you point out the bad user interface design of changing menu
  210. items WHILE they are being selected, any hints on how to do this?
  211.  
  212.  
  213. TIA
  214. - -----------------------------------------------------
  215. And with that remark, folks, the case of the Crown vs
  216. Russell Street (russells@ccu1.aukuni.ac.nz) was proven.
  217.  
  218.  
  219.  
  220. - -------------------------
  221.  
  222. From: dickie@schaefer.math.wisc.edu (Garth Dickie)
  223. Subject:  Changing menu items during MenuSelect
  224. Date: 27 Jan 92 21:46:33 GMT
  225. Organization: Univ. of Wisconsin Dept. of Mathematics
  226.  
  227. russells@ccu1.aukuni.ac.nz (Russell Street) writes:
  228.  
  229. >How does one change menu items when the user is selecting
  230. >a menu. For instance when Option is being held down
  231. >change "Save" to "Save All" etc.  Or like Multifinder 6.1b?
  232. >did with it's "Set Aside" item.
  233.  
  234. Canonical example: FullWrite Professional does (as with most
  235. of its user interface) a beautiful job.
  236.  
  237. >There is a low memory global called MenuHook. If you install
  238. >a pointer to a routine there it gets called repeatedly when
  239. >the user is choosing menus. 
  240.  
  241. Except when the user is holding the mouse over a heierarchical
  242. menu's parent item!  This has been acknowledged as a bug.
  243.  
  244. >If you change menu items using SetItem inside the MenuHook routine the
  245. >item name does not change if the user is looking at the menu.
  246.  
  247. >Perhaps one needs to call the MDEF manually to force a redraw?
  248. >I tried to do this but with little success. I got stuck figuring
  249. >out where the menu lies in global coordinates.
  250.  
  251. Um.  If you really want to hack it this way, it will be pretty
  252. messy.  I don't think that there is any way to even come close
  253. and not break all sorts of rules.
  254.  
  255. If I were doing this, I would probably involve a custom MDEF.  It
  256. would be a bad idea to use a completely rewritten one, unless you
  257. also need to disply option- and shift- key equivalents, because
  258. the standard one will handle heierarchical submenus and scrolling,
  259. which I don't really want to re-create if I ever need them.
  260.  
  261. Given the above, try writing a pass-through MDEF.  Make sure that
  262. the longest item strings are in the menu when you call the system
  263. MDEF to calculate the menu size, so there is enough room.  Keep
  264. a copy of the destination rect when it is first drawn.  You get
  265. a hit message with more than enough frequency to update your menus.
  266. To handle the updates, set the clip of the WMgrPort to contain
  267. just the items to be updated and pass a fake draw message to the
  268. original MDEF.
  269.  
  270. If you are interested, I have code to handle calling an MDEF from
  271. assembly, setting up all of the scrolling state, etc beforehand
  272. and saving it after the call, so that you can manage a heierarchical
  273. list of menus each of which may be redrawn at any time.
  274.  
  275. This is part of a forthcoming (to be placed in the public domain,
  276. together with its source code) menu extension, Floating Menus,
  277. which decouples menu selection from the event loop -- I'm mostly
  278. happy with it, but the Help Manager does some very peculiar things :-).
  279. -- 
  280.  
  281. garth dickie -- dickie@math.wisc.edu -- math agnostic (and student)
  282.  
  283.  
  284.  
  285. - -------------------------
  286.  
  287. From: lsr@Apple.COM (Larry Rosenstein)
  288. Subject:  Changing menu items during MenuSelect
  289. Date: 31 Jan 92 03:03:16 GMT
  290. Organization: Object Based Systems, Apple Computer, Inc.
  291.  
  292. In article <1992Jan27.214633.9920@schaefer.math.wisc.edu> dickie@schaefer.math.wisc.edu (Garth Dickie) writes:
  293. >
  294. >Canonical example: FullWrite Professional does (as with most
  295. >of its user interface) a beautiful job.
  296.  
  297. FullWrite doesn't use the Menu Manager unless it has to.  For example, in
  298. the 1.5 version the System 7 help and application menus don't work.  In the
  299. 1.5s version, they call the Menu Manager if you click on one of those menus,
  300. but then the items don't change dynamically.  If you click on one of their
  301. own menus, then you can't drag over to the help/app menus.
  302.  
  303. -- 
  304. Larry Rosenstein, Apple Computer, Inc.
  305.  
  306. lsr@apple.com
  307. (or AppleLink: Rosenstein1)
  308.  
  309.  
  310.  
  311. - -------------------------
  312.  
  313. From: lsr@Apple.COM (Larry Rosenstein)
  314. Subject:  Changing menu items during MenuSelect
  315. Date: 31 Jan 92 03:03:16 GMT
  316. Organization: Object Based Systems, Apple Computer, Inc.
  317.  
  318. In article <1992Jan27.214633.9920@schaefer.math.wisc.edu> dickie@schaefer.math.wisc.edu (Garth Dickie) writes:
  319. >
  320. >Canonical example: FullWrite Professional does (as with most
  321. >of its user interface) a beautiful job.
  322.  
  323. FullWrite doesn't use the Menu Manager unless it has to.  For example, in
  324. the 1.5 version the System 7 help and application menus don't work.  In the
  325. 1.5s version, they call the Menu Manager if you click on one of those menus,
  326. but then the items don't change dynamically.  If you click on one of their
  327. own menus, then you can't drag over to the help/app menus.
  328.  
  329. -- 
  330. Larry Rosenstein, Apple Computer, Inc.
  331.  
  332. lsr@apple.com
  333. (or AppleLink: Rosenstein1)
  334.  
  335.  
  336.  
  337. ---------------------------
  338.  
  339. From: mbp@generali.harvard.edu (Mark B Palmerino)
  340. Subject: .pit - What program and where can I get it?
  341. Date: 28 Jan 92 16:42:06 GMT
  342. Organization: Harvard University, Cambridge, MA
  343.  
  344. Hi,
  345.  
  346. I just picked up a program (xlisp) from plains.nodak.edu and when I
  347. de-hqx'd it I got the following file: xlisp.pit
  348.  
  349. I'm not familiar with the .pit extension but presume that it is some sort
  350. of an archived or otherwise bundled file. 
  351.  
  352. Does anyone know what application I need to get at the stuff inside and,
  353. more importantly, where I can get said program?
  354.  
  355. Thanks alot!
  356.  
  357. -- 
  358. Mark Palmerino      mbp@wjh12.harvard.edu       Voice: (617) 345-9500
  359.  
  360.  
  361.  
  362. - -------------------------
  363.  
  364. From: wingo@apple.com (Tony Wingo)
  365. Subject:  .pit - What program and where can I get it?
  366. Date: 1 Feb 92 00:34:22 GMT
  367. Organization: Apple Computer
  368.  
  369. In article <1992Jan28.164206.28708@burrhus.harvard.edu>, mbp@generali.harvard.edu (Mark B Palmerino) writes:
  370. > Hi,
  371. > I just picked up a program (xlisp) from plains.nodak.edu and when I
  372. > de-hqx'd it I got the following file: xlisp.pit
  373. > I'm not familiar with the .pit extension but presume that it is some sort
  374. > of an archived or otherwise bundled file. 
  375. > Does anyone know what application I need to get at the stuff inside and,
  376. > more importantly, where I can get said program?
  377. pit files were compressed with PackIT, the first of ther Mac Archivers, now
  378. superceeded.  You can probably find a copy on one of the ftp sites, but you 
  379. shouldn't have to since to the best of knowlege Stuffit will unpack .pit files.
  380.  
  381. -tony
  382.  
  383. >>usual disclaimer<<
  384.  
  385.  
  386.  
  387. - -------------------------
  388.  
  389. From: wingo@apple.com (Tony Wingo)
  390. Subject:  .pit - What program and where can I get it?
  391. Date: 1 Feb 92 00:34:22 GMT
  392. Organization: Apple Computer
  393.  
  394. In article <1992Jan28.164206.28708@burrhus.harvard.edu>, mbp@generali.harvard.edu (Mark B Palmerino) writes:
  395. > Hi,
  396. > I just picked up a program (xlisp) from plains.nodak.edu and when I
  397. > de-hqx'd it I got the following file: xlisp.pit
  398. > I'm not familiar with the .pit extension but presume that it is some sort
  399. > of an archived or otherwise bundled file. 
  400. > Does anyone know what application I need to get at the stuff inside and,
  401. > more importantly, where I can get said program?
  402. pit files were compressed with PackIT, the first of ther Mac Archivers, now
  403. superceeded.  You can probably find a copy on one of the ftp sites, but you 
  404. shouldn't have to since to the best of knowlege Stuffit will unpack .pit files.
  405.  
  406. -tony
  407.  
  408. >>usual disclaimer<<
  409.  
  410.  
  411.  
  412. ---------------------------
  413.  
  414. From: Marcel.Claus@arbi.informatik.uni-oldenburg.de (Marcel Claus)
  415. Subject: Need help with seriell driver
  416. Date: 30 Jan 92 11:52:14 GMT
  417. Organization: University of Oldenburg, Germany
  418.  
  419. In system version 6 there was a function RamSDOpen opening the seriell
  420. RAM drivers and closing the ROM driver. In system version 7 this command
  421. doesn't exist anymore.
  422. My problem is how to read data (ASCII characters, odd-parity, 1 stop bit,
  423. 9600 baud, transfer mode can still be setted with the SerReset command)
  424. in the RAM. The program is written in MPW C.
  425. The incoming data is a simple datastream from a not programmable machine,
  426. so there is no protocoll available.
  427. My question is if there is any command or inside macintosh call to open
  428. the RAM driver (for example with OpenDriver(????)) and close the ROM
  429. driver (possibly with CloseDriver(????); I didn't found the resource names
  430. for those calls in the inside macintosh volumes) or another way to read
  431. the incoming data (possibly with a modified Appletalk call).
  432.  
  433. Thanx to all sendfing me some help.  Marcel
  434.  
  435.  
  436.  
  437. - -------------------------
  438.  
  439. From: ABSURD@applelink.apple.com (Tim Dierks, ToyMeister, Cray abuser)
  440. Subject:  Need help with seriell driver
  441. Date: 1 Feb 92 03:28:43 GMT
  442. Organization: MacDTS, Apple Computer
  443.  
  444. In article <1992Jan30.120651.1274@arbi.informatik.uni-oldenburg.de>, Marcel.Claus@arbi.informatik.uni-oldenburg.de (Marcel Claus) writes:
  445. > In system version 6 there was a function RamSDOpen opening the seriell
  446. > RAM drivers and closing the ROM driver. In system version 7 this command
  447. > doesn't exist anymore.
  448. > My problem is how to read data (ASCII characters, odd-parity, 1 stop bit,
  449. > 9600 baud, transfer mode can still be setted with the SerReset command)
  450. > in the RAM. The program is written in MPW C.
  451. > The incoming data is a simple datastream from a not programmable machine,
  452. > so there is no protocoll available.
  453. > My question is if there is any command or inside macintosh call to open
  454. > the RAM driver (for example with OpenDriver(????)) and close the ROM
  455. > driver (possibly with CloseDriver(????); I didn't found the resource names
  456. > for those calls in the inside macintosh volumes) or another way to read
  457. > the incoming data (possibly with a modified Appletalk call).
  458. > Thanx to all sendfing me some help.  Marcel
  459.  
  460. OK... this is the last time I'm answering this, cause I'm going to save it
  461. this time and send it to our illustrious FAQ editor....  The declarations of
  462. RAMSDOpen and RAMSDClose has been removed from MPW 3.2 and Think C 5.0.  It was intended
  463. solely as a support routine for 64K ROMs- because these machines are no
  464. longer supported by the MPW compilers, most of the routines intended for
  465. those machines only were removed from the interfaces and libraries.  Because
  466. Symantec bases its interfaces on Apple's, they were removed from the Think
  467. interfaces also.  Instead, you should use OpenDriver and CloseDriver to open
  468. and close the serial ports; it is no longer necessary to check whether AppleTalk
  469. is open or not; the drivers will do all this for you.  There is an entire tech
  470. note on this subject; it is #249, "Opening the Serial Driver".  I'm pasting
  471. it below.
  472.  
  473. Tim Dierks
  474. MacDTS, but I speak for myself
  475.  
  476. #249:    Opening the Serial Driver
  477.  
  478. Revised by:    Sriram Subramanian                               December 1989
  479. Written by:    Sriram Subramanian                                 August 1989
  480.  
  481. This Technical Note describes the recommended, safe, and compatible way to
  482. open the Macintosh serial driver, and it explains why you should no longer
  483. check for port availability.
  484. Changes since October 1989:  Corrected syntax errors in the sample code.
  485. _____________________________________________________________________________
  486.  
  487. Starting with the 128K ROM, we recommend that applications do not check the
  488. low-memory globals SPConfig, PortAUse, and PortBUse before opening the serial
  489. driver.  It is no longer the applicationUs responsibility to test for the
  490. availability of the serial ports.  When running AppleTalk Phase 2, it is now
  491. possible to use the printer port for asynchronous serial communication while
  492. AppleTalk is active and using an alternate connection, such as EtherTalk or
  493. TokenTalk.
  494.  
  495. The serial driver automatically verifies that the serial port is correctly
  496. configured and free for an asynchronous driver; if it is not correctly
  497. configured or free, the serial driver returns either the result code
  498. portNotCf or portInUse.  The serial driver already has all the code built
  499. into it for testing the availability of the serial ports before trying to
  500. complete the _Open call.  Therefore, since all of the required checks are
  501. made inside the driver itself, we recommend that a simple OpenDriver call
  502. be made when you need to use a serial port.
  503.  
  504. By using just the OpenDriver call to the serial driver, you ensure that
  505. your code is both user-friendly and compatible with future versions of
  506. the System Software.
  507.  
  508. Pascal
  509.  
  510. result := OpenDriver('.AOut',AoutRefNumber);
  511.                             { Check result codes in a real application. }
  512. result := OpenDriver('.AIn',AinRefNumber);
  513.                             { See failure mechanism in Sample Code.     }
  514.  
  515. C
  516.  
  517. result = OpenDriver("\p.AOut",&AoutRefNumber);
  518.                             /* Check result codes in a real application.*/
  519. result = OpenDriver("\p.AIn",&AinRefNumber);
  520.                             /* See failure mechanism in Sample Code.    */
  521.  
  522. If you must maintain compatibility with the 64K ROMs, call _SysEnvirons,
  523. then either call RAMSDOpen for the 64K ROM machines or OpenDriver for the
  524. others.
  525.  
  526.  
  527. Further Reference:
  528. _______________________________________________________________________________
  529.   %  Inside Macintosh, Volume II-249, The Serial Driver
  530.   %  Inside Macintosh, Volume IV-225, The Serial Driver
  531.   %  Technical Note #129, _SysEnvirons:  System 6.0 and Beyond
  532.   %  DTS Q & A Stack
  533.  
  534.  
  535.  
  536. - -------------------------
  537.  
  538. From: nick@dcs.ed.ac.uk (Nick Rothwell)
  539. Subject:  Need help with seriell driver
  540. Date: 3 Feb 92 12:49:19 GMT
  541. Organization: Friends of the Salter Duck
  542.  
  543. Another FAQ perhaps, but: shouldn't we all be cleaner-than-clean and
  544. using the Communications Toolbox these days?
  545.  
  546.     Nick.
  547. --
  548. Nick Rothwell, LFCS, Edinburgh | "Chai ch t'chai ch't chnna chnna chnna ch'th
  549.              nick@dcs.ed.ac.uk |  Chai ch t'chai ch't chuth chena chann ch'tt
  550. Mentation Consultancy Services |  Chie ch t'chie ch t'chaaa chn chattr chattr"
  551.    cassiel@cix.compulink.co.uk |       -- Wavestation, V3 software, my dragon.
  552.  
  553.  
  554.  
  555. - -------------------------
  556.  
  557. From: ABSURD@applelink.apple.com (Tim Dierks, ToyMeister, Cray abuser)
  558. Subject:  Need help with seriell driver
  559. Date: 1 Feb 92 03:28:43 GMT
  560. Organization: MacDTS, Apple Computer
  561.  
  562. In article <1992Jan30.120651.1274@arbi.informatik.uni-oldenburg.de>, Marcel.Claus@arbi.informatik.uni-oldenburg.de (Marcel Claus) writes:
  563. > In system version 6 there was a function RamSDOpen opening the seriell
  564. > RAM drivers and closing the ROM driver. In system version 7 this command
  565. > doesn't exist anymore.
  566. > My problem is how to read data (ASCII characters, odd-parity, 1 stop bit,
  567. > 9600 baud, transfer mode can still be setted with the SerReset command)
  568. > in the RAM. The program is written in MPW C.
  569. > The incoming data is a simple datastream from a not programmable machine,
  570. > so there is no protocoll available.
  571. > My question is if there is any command or inside macintosh call to open
  572. > the RAM driver (for example with OpenDriver(????)) and close the ROM
  573. > driver (possibly with CloseDriver(????); I didn't found the resource names
  574. > for those calls in the inside macintosh volumes) or another way to read
  575. > the incoming data (possibly with a modified Appletalk call).
  576. > Thanx to all sendfing me some help.  Marcel
  577.  
  578. OK... this is the last time I'm answering this, cause I'm going to save it
  579. this time and send it to our illustrious FAQ editor....  The declarations of
  580. RAMSDOpen and RAMSDClose has been removed from MPW 3.2 and Think C 5.0.  It was intended
  581. solely as a support routine for 64K ROMs- because these machines are no
  582. longer supported by the MPW compilers, most of the routines intended for
  583. those machines only were removed from the interfaces and libraries.  Because
  584. Symantec bases its interfaces on Apple's, they were removed from the Think
  585. interfaces also.  Instead, you should use OpenDriver and CloseDriver to open
  586. and close the serial ports; it is no longer necessary to check whether AppleTalk
  587. is open or not; the drivers will do all this for you.  There is an entire tech
  588. note on this subject; it is #249, "Opening the Serial Driver".  I'm pasting
  589. it below.
  590.  
  591. Tim Dierks
  592. MacDTS, but I speak for myself
  593.  
  594. #249:    Opening the Serial Driver
  595.  
  596. Revised by:    Sriram Subramanian                               December 1989
  597. Written by:    Sriram Subramanian                                 August 1989
  598.  
  599. This Technical Note describes the recommended, safe, and compatible way to
  600. open the Macintosh serial driver, and it explains why you should no longer
  601. check for port availability.
  602. Changes since October 1989:  Corrected syntax errors in the sample code.
  603. _____________________________________________________________________________
  604.  
  605. Starting with the 128K ROM, we recommend that applications do not check the
  606. low-memory globals SPConfig, PortAUse, and PortBUse before opening the serial
  607. driver.  It is no longer the applicationUs responsibility to test for the
  608. availability of the serial ports.  When running AppleTalk Phase 2, it is now
  609. possible to use the printer port for asynchronous serial communication while
  610. AppleTalk is active and using an alternate connection, such as EtherTalk or
  611. TokenTalk.
  612.  
  613. The serial driver automatically verifies that the serial port is correctly
  614. configured and free for an asynchronous driver; if it is not correctly
  615. configured or free, the serial driver returns either the result code
  616. portNotCf or portInUse.  The serial driver already has all the code built
  617. into it for testing the availability of the serial ports before trying to
  618. complete the _Open call.  Therefore, since all of the required checks are
  619. made inside the driver itself, we recommend that a simple OpenDriver call
  620. be made when you need to use a serial port.
  621.  
  622. By using just the OpenDriver call to the serial driver, you ensure that
  623. your code is both user-friendly and compatible with future versions of
  624. the System Software.
  625.  
  626. Pascal
  627.  
  628. result := OpenDriver('.AOut',AoutRefNumber);
  629.                             { Check result codes in a real application. }
  630. result := OpenDriver('.AIn',AinRefNumber);
  631.                             { See failure mechanism in Sample Code.     }
  632.  
  633. C
  634.  
  635. result = OpenDriver("\p.AOut",&AoutRefNumber);
  636.                             /* Check result codes in a real application.*/
  637. result = OpenDriver("\p.AIn",&AinRefNumber);
  638.                             /* See failure mechanism in Sample Code.    */
  639.  
  640. If you must maintain compatibility with the 64K ROMs, call _SysEnvirons,
  641. then either call RAMSDOpen for the 64K ROM machines or OpenDriver for the
  642. others.
  643.  
  644.  
  645. Further Reference:
  646. _______________________________________________________________________________
  647.   %  Inside Macintosh, Volume II-249, The Serial Driver
  648.   %  Inside Macintosh, Volume IV-225, The Serial Driver
  649.   %  Technical Note #129, _SysEnvirons:  System 6.0 and Beyond
  650.   %  DTS Q & A Stack
  651.  
  652.  
  653.  
  654. ---------------------------
  655.  
  656. From: duga@merlin.cvs.rochester.edu (Brady Duga)
  657. Subject: Still having trouble with Discipline...
  658. Date: 11 Feb 92 19:39:58 GMT
  659. Organization: Center for Visual Science, U. of Rochester
  660.  
  661. I'm still having toruble with Discipline on a Quadra. The combination of 
  662. Discipline (2.0.1) and MacsBug (6.2.2) works fine on a Mac II (sys 6.0.5).
  663. However, I still get an "Unknown error due to debugger" on the Quadra
  664. (sys 7.0.1, no TuneUp yet). One odd point: on the MacII, the startup message
  665. says "MacsBug Installed". On the Quadra, it says "Debugger installed".
  666. Should this happen? I could really use some Discipline :)
  667.  
  668. --Brady (duga@cvs.rochester.edu)
  669.  
  670.  
  671.  
  672. - -------------------------
  673.  
  674. From: powell@apple.com (david_powell)
  675. Subject:  Still having trouble with Discipline...
  676. Date: 20 Feb 92 23:16:02 GMT
  677. Organization: Apple Federal
  678.  
  679. You need Discipline 2.0.2 or later and MacsBug 6.3 for a Quadra.
  680.  
  681. The change in startup messages is due to the system software version 
  682. differences (6.x sez Macsbug and 7.x sez Debugger installed).--
  683.  
  684. In article <1992Feb11.193958.15713@galileo.cc.rochester.edu>, duga@merlin.cvs.rochester.edu (Brady Duga) writes:
  685. > I'm still having toruble with Discipline on a Quadra. The combination of 
  686. > Discipline (2.0.1) and MacsBug (6.2.2) works fine on a Mac II (sys 6.0.5).
  687. > However, I still get an "Unknown error due to debugger" on the Quadra
  688. > (sys 7.0.1, no TuneUp yet). One odd point: on the MacII, the startup message
  689. > says "MacsBug Installed". On the Quadra, it says "Debugger installed".
  690. > Should this happen? I could really use some Discipline :)
  691. > --Brady (duga@cvs.rochester.edu)
  692.  
  693. --
  694. david powell
  695. Apple Federal Systems Group
  696. powell@apple.com
  697.  
  698.  
  699.  
  700. - -------------------------
  701.  
  702. From: ksand@apple.com (Kent Sandvik)
  703. Subject:  Still having trouble with Discipline...
  704. Date: 21 Feb 92 03:04:26 GMT
  705. Organization: MacDTS Mongols
  706.  
  707. In article <20576@goofy.Apple.COM>, powell@apple.com (david_powell) writes:
  708. > You need Discipline 2.0.2 or later and MacsBug 6.3 for a Quadra.
  709.  
  710. 6.2.2 works just fine on my Quadra, if not I would take my bike to 
  711. DTE-land. There are some 6.3d releases floating around out there, and
  712. those are certainly not tested or debugged yet. I would try to use 
  713. the later Discipline versions (2.0.2) (available on the infamous ETO#6) 
  714. to see if the problem is still there.
  715.  
  716. Kent Sandvik
  717. "Dynamic Language Evangelist"
  718. not speaking for DTS
  719.  
  720.  
  721.  
  722. ---------------------------
  723.  
  724. From: Henry.Sohn@f444.n161.z1.FIDONET.ORG (Henry Sohn)
  725. Subject:  HELP WITH MODAL DIALOG/WINDOW CONFLIC
  726. Date: 6 Feb 92 16:09:48 GMT
  727. Organization: FidoNet node 1:161/444 - BMUG, Berkeley CA
  728.  
  729. I too am just starting with the Mac Pascal Programming Primer and find it a 
  730. valuable resource.  Although I don't have a solution to your situation 
  731. (hopefully that last message resolved it), I thought I might take this 
  732. opportunity to ask if you or anyone else knows where Volume II of this book 
  733. supposed to be.  Volume I refers to it, and it apparently continues with 
  734. Color QuickDraw and other advanced topics.  There is a Volume II for C, but I 
  735. haven't been able to find Volume II for Pascal.  Any ideas?
  736.  
  737. Thanks in advance, and Happy Hacking...
  738.  
  739. Henry S.
  740.  
  741. --  
  742. Henry Sohn - via FidoNet node 1:125/555
  743.     UUCP: ...!uunet!hoptoad!kumr!fidogate!161!444!Henry.Sohn
  744. INTERNET: Henry.Sohn@f444.n161.z1.FIDONET.ORG
  745.  
  746.  
  747.  
  748. - -------------------------
  749.  
  750. From: lie6@quads.uchicago.edu (jonathan abel lieberman)
  751. Subject:  HELP WITH MODAL DIALOG/WINDOW CONFLIC
  752. Date: 21 Feb 92 07:39:49 GMT
  753. Organization: University of Chicago Computing Organizations
  754.  
  755. I have tried to find voloume II as well.  I tried to order it when I couldn't
  756. find it, and I was told that it doesn't exist, despite the references to it
  757. in vol. I.
  758. ______________________________________________________________________________
  759. Jonathan Lieberman     j-lieberman@uchicago.edu           No silly quote...
  760.  
  761.  
  762.  
  763. ---------------------------
  764.  
  765. From: swofford@uxh.cso.uiuc.edu (David Swofford )
  766. Subject: question re 32-bit memory manager
  767. Date: 14 Feb 92 20:19:40 GMT
  768. Organization: University of Illinois at Urbana
  769.  
  770.  
  771. Does anyone know if there is a limit of 16M on the size of a single 
  772. memory block under System 7 32-bit addressing?  I can't find any mention 
  773. of such a limit in Inside Mac V6, but if the block header is still as 
  774. described in  IM 2, only 24 bits are available to store the size of the 
  775. block.  The reason this is relevant is that I've written some code to 
  776. walk through the application heap and examine every block and I want to 
  777. make sure it will work under 32-bit addressing.  (It works fine on 
  778. System 7 under 24-bit addressing but I don't have access to a machine 
  779. that can run in 32-bit mode.)
  780.  
  781. IM 6 DOES say "never make assumptions about the contents of Memory 
  782. Manager data structures" (p. 3-6).  I would like to abide by this, but 
  783. does anyone know how a program can get pointers to all allocated memory 
  784. blocks without knowing how the block headers are structured?
  785. --
  786. David L. Swofford                 Phone:    (217)244-6959
  787. Illinois Natural History Survey   FAX:      (217)333-4949
  788. 607 E. Peabody Drive              BITNET:   DAVESWOF@UIUCVMD
  789. Champaign, Illinois 61820 USA     Internet: swofford@uxh.cso.uiuc.edu
  790.  
  791.  
  792.  
  793. - -------------------------
  794.  
  795. From: ABSURD@applelink.apple.com (Tim Dierks, ToyMeister, Cray abuser)
  796. Subject:  question re 32-bit memory manager
  797. Date: 17 Feb 92 01:34:10 GMT
  798. Organization: MacDTS, Apple Computer
  799.  
  800. In article <1992Feb14.201940.22991@ux1.cso.uiuc.edu>, swofford@uxh.cso.uiuc.edu (David Swofford ) writes:
  801. > Does anyone know if there is a limit of 16M on the size of a single 
  802. > memory block under System 7 32-bit addressing?  I can't find any mention 
  803. > of such a limit in Inside Mac V6, but if the block header is still as 
  804. > described in  IM 2, only 24 bits are available to store the size of the 
  805. > block.  The reason this is relevant is that I've written some code to 
  806. > walk through the application heap and examine every block and I want to 
  807. > make sure it will work under 32-bit addressing.  (It works fine on 
  808. > System 7 under 24-bit addressing but I don't have access to a machine 
  809. > that can run in 32-bit mode.)
  810. > IM 6 DOES say "never make assumptions about the contents of Memory 
  811. > Manager data structures" (p. 3-6).  I would like to abide by this, but 
  812. > does anyone know how a program can get pointers to all allocated memory 
  813. > blocks without knowing how the block headers are structured?
  814.  
  815. The block and heap structures have changed with 32-bit addressing; your
  816. code will not work on a 32-bit machine.  There isn't any reasonable way
  817. to get the addresses of all allocated memory blocks without knowledge of
  818. heap data structures.  Fortunately, most programs don't need this capability;
  819. any that do lock themselves to a particular version of the heap structures.
  820.  
  821. Any Mac can be run in 32-bit mode with the addition of Mode32, available from
  822. ftp.apple.com.
  823.  
  824. Tim Dierks
  825. MacDTS, but I speak for myself
  826.  
  827.  
  828.  
  829. - -------------------------
  830.  
  831. From: ksand@apple.com (Kent Sandvik)
  832. Subject:  question re 32-bit memory manager
  833. Date: 17 Feb 92 03:08:52 GMT
  834. Organization: MacDTS Mongols
  835.  
  836. In article <20412@goofy.Apple.COM>, ABSURD@applelink.apple.com (Tim Dierks, ToyMeister, Cray abuser) writes:
  837. > In article <1992Feb14.201940.22991@ux1.cso.uiuc.edu>, swofford@uxh.cso.uiuc.edu (David Swofford ) writes:
  838. > > IM 6 DOES say "never make assumptions about the contents of Memory 
  839. > > Manager data structures" (p. 3-6).  I would like to abide by this, but 
  840. > > does anyone know how a program can get pointers to all allocated memory 
  841. > > blocks without knowing how the block headers are structured?
  842. > The block and heap structures have changed with 32-bit addressing; your
  843. > code will not work on a 32-bit machine.  There isn't any reasonable way
  844. > to get the addresses of all allocated memory blocks without knowledge of
  845. > heap data structures.  Fortunately, most programs don't need this capability;
  846. > any that do lock themselves to a particular version of the heap structures.
  847.  
  848. Hi Tim, anyway developers should *never* assume that internal block and heap
  849. structures will be rock solid. There's a lot of work going on inside Apple
  850. (you all know what...) and don't ever trust OS internals concerning the future.
  851. For instance in the A/UX case NewHandle/NewPtr calls are done using UNIX malloc
  852. (really brk/sbrk) calls, so you can't assume that memory blocks are exactly the
  853. same in various emulated environments.
  854.  
  855. Kent Sandvik
  856. not speaking for MacDTS mongols, was it?
  857.  
  858.  
  859.  
  860. - -------------------------
  861.  
  862. From: dorner@pequod.cso.uiuc.edu (Steve Dorner)
  863. Subject:  question re 32-bit memory manager
  864. Organization: University of Illinois at Urbana-Champaign
  865. Date: Tue, 18 Feb 1992 19:00:04 GMT
  866.  
  867. ksand@apple.com (Kent Sandvik) writes:
  868. >> In article <1992Feb14.201940.22991@ux1.cso.uiuc.edu>, swofford@uxh.cso.uiuc.edu (David Swofford ) writes:
  869. >> > IM 6 DOES say "never make assumptions about the contents of Memory 
  870. >> > Manager data structures" (p. 3-6).  I would like to abide by this, but 
  871. >> > does anyone know how a program can get pointers to all allocated memory 
  872. >> > blocks without knowing how the block headers are structured?
  873. >anyway developers should *never* assume that internal block and heap
  874. >structures will be rock solid.
  875.  
  876. I've worked with Dave on this a bit.  His problem is that the system is
  877. not rock solid.
  878.  
  879. In fact, the print manager is leaving little turds in his heap; the turds
  880. are disembodied copies of the paper type popup menu.  He's using code
  881. suggested by DTS, BTW.
  882.  
  883. So, he can either a) walk the heap looking for and removing these things
  884. b) poke around the print manager trying to find a pointer to them
  885. or c) put up with losing 100 bytes every time a user does a page preview.
  886.  
  887. I don't blame him for thinking a) is the safest alternative.
  888. -- 
  889. Steve Dorner, U of Illinois Computing Services Office
  890. Internet: s-dorner@uiuc.edu  UUCP: uunet!uiucuxc!uiuc.edu!s-dorner
  891.  
  892.  
  893.  
  894. - -------------------------
  895.  
  896. From: ksand@apple.com (Kent Sandvik)
  897. Subject:  question re 32-bit memory manager
  898. Date: 21 Feb 92 05:35:11 GMT
  899. Organization: MacDTS Mongols
  900.  
  901. In article <1992Feb18.190004.25785@ux1.cso.uiuc.edu>, dorner@pequod.cso.uiuc.edu (Steve Dorner) writes:
  902. > ksand@apple.com (Kent Sandvik) writes:
  903. > >> In article <1992Feb14.201940.22991@ux1.cso.uiuc.edu>, swofford@uxh.cso.uiuc.edu (David Swofford ) writes:
  904. > >> > IM 6 DOES say "never make assumptions about the contents of Memory 
  905. > >> > Manager data structures" (p. 3-6).  I would like to abide by this, but 
  906. > >> > does anyone know how a program can get pointers to all allocated memory 
  907. > >> > blocks without knowing how the block headers are structured?
  908. > >anyway developers should *never* assume that internal block and heap
  909. > >structures will be rock solid.
  910. > I've worked with Dave on this a bit.  His problem is that the system is
  911. > not rock solid.
  912. > In fact, the print manager is leaving little turds in his heap; the turds
  913. > are disembodied copies of the paper type popup menu.  He's using code
  914. > suggested by DTS, BTW.
  915.  
  916. > So, he can either a) walk the heap looking for and removing these things
  917. > b) poke around the print manager trying to find a pointer to them
  918. > or c) put up with losing 100 bytes every time a user does a page preview.
  919. > I don't blame him for thinking a) is the safest alternative.
  920.  
  921. True, however we should fix this, so please send the snippet over 
  922. here so we could examine the case. I'm sure our DTS printing people 
  923. will take a careful look at the problem. If possible state the release
  924. levels of the print drivers and the system so it's easier to narrow 
  925. the problem.
  926.  
  927. I will be away from the office for 14 days, if I don't get it by Friday afternoon
  928. I can't do much about the problem. Send it to APPLE.BUGS@applelink.apple.com
  929. as well so it will be included into the bug database.
  930.  
  931. Actually, if you send the material to KSAND@applelink.apple.com, I could
  932. forward it to the right people next week (will check my ALink emails with
  933. my portable).
  934.  
  935. Kent Sandvik/DTS
  936. - --
  937. not speaking nor working for DTS just now
  938.  
  939.  
  940.  
  941. ---------------------------
  942.  
  943. From: Carl.Constantine@BCSystems.GOV.BC.CA
  944. Subject: SpreadSheet interfaces, best way??
  945. Date: 17 Feb 92 16:04:09 GMT
  946. Organization: BC Systems Corporation
  947.  
  948. Hi again!!  I want to implement a "spreadsheet" style interface to the graphics
  949. program I'm writing.  Basically, the program reads a data file (using reset,
  950. etc for now until I figure out how to extract text using the SFGet routines)
  951. and I want to display the data read in a spread sheet before graphing.  
  952.  
  953. I have 2 problems, I'm using the List Manager to set up the "cells" in a
  954. window.  The grid is 5 x 10 cells.  After setting up the cells in memory, I
  955. want to outline them like Excel and other spreadsheets. However, I can't seem
  956. to get this to work.  Here is what the code looks like:
  957.  
  958. { Set up the 5 x 10 list already, now go to each cell in the list and frame it}
  959.  
  960. for i := 0 to 9 do    { the list manager is 0 based }
  961.   for j := 0 to 4 do
  962.     begin
  963.       theCell.h := i;
  964.       theCell.v := j;
  965.       LRect(aCellRect,theCell,theList);
  966.       FrameRect(aCellRect);
  967.     end;    { for i }
  968.  
  969. LUpdate...
  970.  
  971. It sets up the cells fine, but it doesn't draw them.  I have drawing on and I
  972. call an LDoDraw(TRUE,theList) in this procedure.  Any ideas??
  973.  
  974. My second problem is with LSetCell.  It takes a pointer the the data that you
  975. want to put in the cell as well as the length of the data.  How can you use
  976. this when you've read your data in as integers into an array:
  977.  
  978.     Readln(FType,Tests[i]);    
  979.         { where Tests:array[1..4] of integer }
  980.  
  981. Should I be reading the data in as a string?? or is there a better way in which
  982. to go about this???
  983.  
  984. Thanks in advance.
  985.  
  986. -- 
  987. Carl.Constantine@BCSystems.gov.bc.ca
  988. British Columbia, Canada
  989.  
  990.  
  991.  
  992. - -------------------------
  993.  
  994. From: deadman@garnet.berkeley.edu (Ben Haller)
  995. Subject:  SpreadSheet interfaces, best way??
  996. Date: 18 Feb 92 10:16:19 GMT
  997. Organization: Stick Software
  998.  
  999. In article <1992Feb17.080409.293@bcsystems.gov.bc.ca>
  1000.    Carl.Constantine@BCSystems.GOV.BC.CA writes:
  1001. >I have 2 problems, I'm using the List Manager to set up the "cells" in a
  1002. >window.  The grid is 5 x 10 cells.
  1003.  
  1004.   I have some good advice for you: don't use the List Manager.  Apple
  1005. has often been quoted as saying "The Resource Manager is not a databse".
  1006. Similarly, the List Manager is not a spreadsheet.  It is (IMHO) only
  1007. suited for the simplest and most trivial of applications.  Duplicating its
  1008. functionality with your own code, which you can then revise to behave the
  1009. way you want it to, should take a very small amount of code.
  1010.   I have often wondered why Apple bothers making these half-assed managers.
  1011. If they actually were to write good, bug-free, general code, less people
  1012. might be inclined to go around the operating system...
  1013.  
  1014. -Ben Haller (deadman@garnet.berkeley.edu)
  1015. "Operating system?  What operating system?"
  1016.  
  1017.  
  1018.  
  1019. - -------------------------
  1020.  
  1021. From: e-sink@uiuc.edu (Eric W. Sink)
  1022. Subject:  SpreadSheet interfaces, best way??
  1023. Organization: University of Illinois at Urbana-Champaign
  1024. Date: Tue, 18 Feb 1992 15:00:29 GMT
  1025.  
  1026. In <kq1n7jINN3do@agate.berkeley.edu> deadman@garnet.berkeley.edu (Ben Haller) writes:
  1027.  
  1028. >In article <1992Feb17.080409.293@bcsystems.gov.bc.ca>
  1029. >   Carl.Constantine@BCSystems.GOV.BC.CA writes:
  1030. >>I have 2 problems, I'm using the List Manager to set up the "cells" in a
  1031. >>window.  The grid is 5 x 10 cells.
  1032.  
  1033. >  I have some good advice for you: don't use the List Manager.  Apple
  1034.  
  1035. Suggestion: Use the Table class in the Think Class Library.  That's what
  1036. it's there for...
  1037.  
  1038. -- 
  1039. Eric W. Sink,  Spatial Analysis and Systems Team
  1040. USACERL, P.O. Box 9005, Champaign, IL 61826-9005
  1041. 1-800-USA-CERL x449,   e-sink@uiuc.edu
  1042.  
  1043.  
  1044.  
  1045. - -------------------------
  1046.  
  1047. From: dorner@pequod.cso.uiuc.edu (Steve Dorner)
  1048. Subject:  SpreadSheet interfaces, best way??
  1049. Organization: University of Illinois at Urbana-Champaign
  1050. Date: Tue, 18 Feb 1992 15:41:40 GMT
  1051.  
  1052. deadman@garnet.berkeley.edu (Ben Haller) writes:
  1053. >  I have often wondered why Apple bothers making these half-assed managers.
  1054.  
  1055. Apple wrote several of the managers because they needed them in the OS.
  1056. Then they say, "Hey, maybe somebody else could use this", and they document
  1057. it. Then they tell us "you really shouldn't use this for real work".
  1058.  
  1059. It *is* a weird process, no mistake.
  1060.  
  1061. I think the key to "don't abuse the managers" is that they were all written
  1062. for incidental use.  Yes, the list manager isn't the thing to use for
  1063. Lotus 123; but it's fine for a list of files, or a couple dozen inputs
  1064. in a table.  Yes, TextEdit isn't FullWrite Pro; but it's fine for small
  1065. blocks of text.  No, you don't implement the control panel for a space
  1066. shuttle simulator with the Dialog Manager, but it's great for grabbing
  1067. a few items.
  1068.  
  1069. Anyway, the point I'm failing to make here is that the managers are fine
  1070. for everything except the Central Core of your program, it's Reason To
  1071. Exist.  Use the managers for the periphery, and you'll do fine.
  1072.  
  1073. >If they actually were to write good, bug-free, general code, less people
  1074. >might be inclined to go around the operating system...
  1075.  
  1076. Unless I'm mistaken, that's (part of) what MacApp's intended to be.
  1077. -- 
  1078. Steve Dorner, U of Illinois Computing Services Office
  1079. Internet: s-dorner@uiuc.edu  UUCP: uunet!uiucuxc!uiuc.edu!s-dorner
  1080.  
  1081.  
  1082.  
  1083. - -------------------------
  1084.  
  1085. From: mlanett@void.ncsa.uiuc.edu (Mark Lanett)
  1086. Subject:  SpreadSheet interfaces, best way??
  1087. Date: 18 Feb 92 17:11:22 GMT
  1088. Organization: University of Illinois at Urbana
  1089.  
  1090. dorner@pequod.cso.uiuc.edu (Steve Dorner) writes:
  1091.  
  1092. >deadman@garnet.berkeley.edu (Ben Haller) writes:
  1093. >>If they actually were to write good, bug-free, general code, less people
  1094. >>might be inclined to go around the operating system...
  1095.  
  1096. >Unless I'm mistaken, that's (part of) what MacApp's intended to be.
  1097.  
  1098. Yes. Eric just suggested using the TCLs Table class; I was going to suggest
  1099. using MacApp's TGridView (which also has TTextGridView and TTextListView
  1100. subclasses already for you). In fact in GelReader I implemented a *real* type-
  1101. on-it spreadsheet using that and a locatable TEditText... (which was a real
  1102. bitch, too. I did it at least 3 times and still am not happy with it).
  1103. -- 
  1104. Mark Lanett                                                   mlanett@uiuc.edu
  1105. Software Tools Group, NCSA, University of Illinois at Urbana-Champaign
  1106.  
  1107.  
  1108.  
  1109. - -------------------------
  1110.  
  1111. From: ksand@apple.com (Kent Sandvik)
  1112. Subject:  SpreadSheet interfaces, best way??
  1113. Date: 20 Feb 92 08:54:01 GMT
  1114. Organization: MacDTS Mongols
  1115.  
  1116. In article <kq1n7jINN3do@agate.berkeley.edu>, deadman@garnet.berkeley.edu (Ben Haller) writes:
  1117. > In article <1992Feb17.080409.293@bcsystems.gov.bc.ca>
  1118. >    Carl.Constantine@BCSystems.GOV.BC.CA writes:
  1119. > >I have 2 problems, I'm using the List Manager to set up the "cells" in a
  1120. > >window.  The grid is 5 x 10 cells.
  1121. >   I have some good advice for you: don't use the List Manager.  Apple
  1122. > has often been quoted as saying "The Resource Manager is not a databse".
  1123. > Similarly, the List Manager is not a spreadsheet.  It is (IMHO) only
  1124. > suited for the simplest and most trivial of applications.  Duplicating its
  1125. > functionality with your own code, which you can then revise to behave the
  1126. > way you want it to, should take a very small amount of code.
  1127. >   I have often wondered why Apple bothers making these half-assed managers.
  1128. > If they actually were to write good, bug-free, general code, less people
  1129. > might be inclined to go around the operating system...
  1130.  
  1131. Yes, as Steve pointer out, MacApp has GridViews and other things which makes
  1132. it easy to implement view lists, even with automatic key selection (MacApp 3.0
  1133. has a special behavior which will scroll the list based on the first keystrokes,
  1134. all you need to do is to write two lines of code).
  1135.  
  1136. Now, do people use MacApp? Usually not because they then complain about the performance
  1137. issues (which are not really that bad), the high threshold concerning learning
  1138. the object framework (which is a valid reason in some cases), and the compile and
  1139. linking times (now we start to have valid problems...).
  1140.  
  1141. I think we all agree that there's a time and place for every technique, library
  1142. and trick. Sometimes MacApp is the quickest way to create something concerning 
  1143. time-to-market worries (which is a more and more vital issue today). 
  1144. Sometimes a small neat C program is the right design idea for an application 
  1145. (fast graphical games for instance). The Managers are really there to provide 
  1146. the entry level functionality which should then be expanded in the application 
  1147. itself. But in general we are nowadays providing new managers with more 
  1148. and more built-in functionality (cmp QuickTime and CTB).
  1149.  
  1150. One final note about MacApp, if nothing else use MacApp as a library full
  1151. of ideas which could be used in your own application. I'm always amazed over
  1152. small nuggets of Mac code I could steal from the MacApp framework itself.
  1153.  
  1154. Kent Sandvik
  1155. ..not speaking for Apple, nor DTS, nor the German branch of the Rush fan club.
  1156.  
  1157.  
  1158.  
  1159. - -------------------------
  1160.  
  1161. From: lsr@apple.com (Larry Rosenstein)
  1162. Subject:  SpreadSheet interfaces, best way??
  1163. Date: 21 Feb 92 18:38:40 GMT
  1164.  
  1165. In article <kq1n7jINN3do@agate.berkeley.edu>, deadman@garnet.berkeley.edu (Ben
  1166. Haller) writes:
  1167. >   I have often wondered why Apple bothers making these half-assed managers.
  1168. > If they actually were to write good, bug-free, general code, less people
  1169. > might be inclined to go around the operating system...
  1170.  
  1171. There's a place for things like TextEdit and the ListManager.  You don't need a
  1172. full-blown table editor when all you want is a list of a couple hundred strings,
  1173. or an editable field in a dialog box.
  1174.  
  1175. --
  1176. Larry Rosenstein
  1177. lsr@apple.com
  1178.  
  1179.  
  1180.  
  1181. ---------------------------
  1182.  
  1183. End of C.S.M.P. Digest
  1184. **********************
  1185.